package com.iris.live.services.data.repositories;

import com.iris.live.services.models.PageData;
import com.iris.live.services.models.RequestBase;
import com.iris.live.services.services.InsuranceService;
import org.springframework.data.repository.NoRepositoryBean;

import java.util.Date;
import java.util.List;

/**
 * Created by xin on 2016/7/30.
 */
@NoRepositoryBean
public interface InsuranceRepository {

    PageData getInsuranceInfoList(String liveName, String permit, InsuranceService.GetInsuranceInfoListRequest request,Integer pageSize,Integer pageIndex);

    PageData getInsuranceAccountInfo(String liveName, int pageSize, int pageIndex, String permit,
                                     String tciNo, String vciNo, String tciCompany, String vciCompany, String salesName,
                                     String status, String username, String userPhone, String vin, String type,
                                     Date startEnterDate, Date endEnterDate, Date startDueDate, Date endDueDate, Date startOrderDate,
                                     Date endOrderDate, Date startExpectInvoiceDate, Date endExpectInvoiceDate, String orderRelyType,
                                     String forceInsuranceStartDate,String forceInsuranceEndDate,String commercialInsuranceStartDate,String commercialInsuranceEndDate);

    Object getInsuranceInfoByCode(String permit,int code);

    List getInsuranceCompanyList(String permit);

    List getInsuranceCompanyListByLicense(String license);

    PageData getSuggestPlan(String permit, int pageSize, int pageIndex);

    List getDetailsByPlan(String permit, int carId);

    List getFailReasonList();

    Object getInsuranceOffersById(int id);

    Object getFailReasonByInsuranceCode(String code);

    Object getPreFailReasonByInsuranceCode(String code, String insId);

    List getComboList(String permit, String brand);

    List getlastUpdateTime();
    List getInsComList();

    List getAreaList();
    List getAreasList();

    List getInsComListOpen();

     List getCoInsCompanyList(String rowName,Integer id,String areaName );
    List getCoInsCompanysList(String rowName,Integer id,String areaName );

    List getDlr();

   PageData getDealerInsList(RequestBase requestBase);

    List getInsFailList();

    List getRealInsFailList(String reason);

    List getcarForceInsInformation(String InsId);

    List getcarCommercialInsInformation(String InsId);

    List  getTradeInsInfoList(InsuranceService.TradeInsInfo tradeInsInfo);

    List getInsIcWorkInfo(String permit, String userName);

    List getInsCarInfo(String code);

    List findQuanClassAndidMaxDate(String ids);

    List getInsPrice(Integer areaId,String permit, String inscode, String brand);

    List getInsFactorage(String insA, String insB, String permit, String state);

    List getconfirmInsState(String userName, String quCode, String logTime);

    List getInsHistoryInfo(String code);

    List getInsCost(String insCode);

    List getPolicyReasonInfo(String permit);

    PageData getOtherInsuranceInfo(String permit, InsuranceService.OtherInsuranceInfo otherInsuranceInfo);

    PageData getOthergetInsuranceAccountInfo(String permit, InsuranceService.OtherInsuranceInfo otherInsuranceInfo);

    PageData exportOtherInsuranceAccountInfo(String permit, String icPolicyNo, String bcPolicyNo, String icInsuranceCpy, String bcInsuranceCpy,
                                             String sale, String cusName, String carBrand, String carModel, int pageSize, int pageIndex);

    List getInsuranceOtherCarInfo(String vin);

    List getInsuranceOtherICInfo(String vin);

    List getInsuranceBcInfo(String vin);

    List getInsuranceHistoryInfo(String carid);

    PageData getInsuranceAccountInfoOverWrite(String liveName, int pageSize, int pageIndex, String permit, String tciNo,
                                              String vciNo, String tciCompany, String vciCompany, String salesName,
                                              String status, String username, String userPhone, String vin, String type,
                                              Date startEnterDate, Date endEnterDate, Date startDueDate, Date endDueDate,
                                              Date startOrderDate, Date endOrderDate, Date startExpectInvoiceDate,
                                              Date endExpectInvoiceDate, String orderRelyType,
                                              String forceInsuranceStartDate,String forceInsuranceEndDate,String commercialInsuranceStartDate,String commercialInsuranceEndDate);

    List getInsuranceFeeByLicense(String license);

    List getInsDefeatedResonRpt();

    List getInsuianceChange(String inscode);

    List getInsuranceCompany();
}
